package com.edu.whty.dao.system;

import com.edu.whty.dao.base.IBaseDao;
import com.edu.whty.entity.system.TbSysEduResPlatform;
import com.edu.whty.entity.system.SimpleConfig;
import com.edu.whty.entity.system.SysConfigPo;

import java.util.List;
import java.util.Map;

/**
 * 多平台配置DAO
 * @author shijiapeng
 * @date 2015年8月27日 下午3:45:40
 */
public interface SysConfigDao extends IBaseDao<SysConfigPo> {

	/**
	 * 获取第一条配置
	 * @param paramMap
	 * @return
	 */
	public SysConfigPo loadOneByPlatformCodeAndKeyName(Map<String, Object> paramMap);
	
	/**
	 * 查询配置列表
	 * @param paramMap
	 * @return
	 */
	public List<SimpleConfig> listSimpleConfigByCondition(Map<String, Object> paramMap);
	
	/**
	 * 根据domainId批量删除配置
	 * @return
	 * @throws Exception
	 */
	public int deleteByDomainId(Map<String, Object> paramMap) throws Exception;

	/**
	 * 根据keyName批量删除
	 * @return
	 * @throws Exception
	 */
	public int deleteByKeyName(Map<String, Object> paramMap) throws Exception;

	/**
	 * 加载一条记录，如果有多条取第一条
	 * @param paramMap
	 * @return
	 * @throws Exception
	 */
	public SysConfigPo loadByCondition(Map<String, Object> paramMap) throws Exception;

	SysConfigPo loadById(Map<String, Object> paramMap)throws  Exception;

	/**
	 * 列出地址分类信息(没有专门的分类表，一个分类取一条记录)
	 * @param domainId
	 * @return
	 * @throws Exception
	 */
	public List<SysConfigPo> listConfigType(Map<String, Object> paramMap) throws Exception;

	/**
	 * 根据平台编码和key值获取value值
	 * @param paramMap
	 * @return
	 * @throws Exception
	 */
	public String queryValueByPlatformCodeAndKeyName(Map<String, Object> paramMap) throws Exception;

	/**
	 *
	 * @Description:获取有效的平台编码、及处理过的value来获取用户机构信息Url
	 * @return
	 * List<SysConfig>
	 */
	public List<SysConfigPo> queryUserOrgValue();

	public String queryPlatformCodeByDomainId(Map<String, Object> paramMap);

	List<SysConfigPo> getConfigByPlatformCode(Map<String, String> param);

	List<String> getPlatformCode(Map<String, String> param);

	/**
	 * 根据条件更新
	 * @param paramMap
	 * @return
	 */
	public int updateByCondition(Map<String, Object> paramMap);

	List<Map<String,Object>> getTbSysConfigOthers(Map<String, Object> param);

	List<TbSysEduResPlatform> getEduResParam(Map<String, Object> param);

	public List<Map> getDomainIdByCmsFt(String cmsFtUrl);

	public Map getCmsGatewayMap(Map map);

	String queryConfigValueByDomainId(Map<String, Object> paramMap);
}
